import 'package:flutter/material.dart';

/// 创建一个通用的输入框组件
///
/// 该组件封装了一个 [TextField]，提供了一些常用的配置选项。
///
/// 参数：
/// - [labelText]：输入框的标签文本，默认为 "请输入"。
/// - [controller]：用于控制输入框文本的 [TextEditingController]。
/// - [onChanged]：当输入框文本发生变化时调用的回调函数。
///
/// 返回值：
/// 返回一个带有自定义样式的 [TextField] 组件。
Widget commonInput(
    {String? labelText,
    TextEditingController? controller,
    ValueChanged<String>? onChanged,
    bool? obscureText}) {
  return TextField(
    obscureText: obscureText ?? false,
    controller: controller,
    onChanged: onChanged,
    style: const TextStyle(color: Colors.white, fontSize: 14),
    cursorColor: Colors.white,
    decoration: InputDecoration(
      enabledBorder: const OutlineInputBorder(
          borderSide: BorderSide(color: Colors.white, width: 0.5)),
      focusedBorder: const OutlineInputBorder(
          borderSide: BorderSide(color: Colors.white, width: 1)),
      labelText: labelText ?? '请输入',
      labelStyle: const TextStyle(color: Colors.white),
    ),
  );
}

/// 创建一个带有白色边框的按钮组件
///
/// 该组件封装了一个 [GestureDetector] 和 [Container]，用于创建一个可点击的按钮。
///
/// 参数：
/// - [title]：按钮上显示的文本，必须提供。
/// - [onTap]：按钮被点击时调用的回调函数，可选参数。
///
/// 返回值：
/// 返回一个带有白色边框的可点击按钮组件。
Widget whiteBorderButton({
  required String title,
  GestureTapCallback? onTap,
}) {
  return GestureDetector(
    onTap: onTap,
    child: Container(
      alignment: Alignment.center,
      width: double.infinity,
      height: 45,
      margin: const EdgeInsets.only(left: 40, right: 40),
      decoration: BoxDecoration(
          borderRadius: const BorderRadius.all(Radius.circular(22.5)),
          border: Border.all(color: Colors.white, width: 1)),
      child: Text(
        title,
        style: const TextStyle(color: Colors.white, fontSize: 15),
      ),
    ),
  );
}
